(define unshift
  (native_function "
    Proc.new do |arguments, interpreter|
      arg1 = interpreter.evaluate(arguments[0])
      newargs = arguments.slice(1, arguments.length)
      newargs.reverse_each do |argument|
        arg1.unshift(interpreter.evaluate(argument))
      end
      arg1.flatten
    end
  "))
